/* eslint valid-jsdoc: "off" */

'use strict';

//整个项目的默认配置

/**
 * @param {Egg.EggAppInfo} appInfo app info
 */
const {parse}=require('url');//引入parse解析
module.exports = appInfo => {
  /**
   * built-in config
   * @type {Egg.EggAppConfig}
   **/
  const config = exports = {
    keys:appInfo.name + '_1653895806042_5866',
    middleware:['auth','errorHandle'],//中间件，会在auth文件中找抛出的方法 'auth'
    security:{//安全守卫
      csrf:{//利用框架的特性 防止xss攻击 拦截post请求
        enable:true,//开启csrf拦截
        headerName:'csrf_token',//设置csrf_token 从header里面获取 也可以从body中获取
        ignore(ctx){//忽略 某些post请求 不拦截
          // 定义忽略白名单
          const white_list=['/api/login','/api/registry'];
          //获取请求路径
          let {pathname}=parse(ctx.request.url);//解析请求路径
          // console.log(pathname);
          return white_list.includes(pathname);//在白名单中，返回true，忽略
        }
      }
    },
    mysql:{
      client: {
        // host
        host: 'localhost',
        // port
        port: '3306',
        // username
        user: 'root',
        // password
        password: '123456',
        // database
        database: 'my_tables', //数据库   
      }
    },
    validate:{
      convert: false,//是否反转
   },
    multipart:{//解析上传文件信息
      mode:'file'
    },
    oss:{
      client: {
        accessKeyId:'LTAI5t5iow5Wv4vu1RLwpW1n',//应用id
        accessKeySecret: 'ZSDkr4wjzaG9Z59I831uoGV4JGQJH7',//应用oss密钥
        bucket: '1911bbucket01',//bucket名字
        endpoint: 'oss-cn-beijing.aliyuncs.com',//地域节点
        timeout: '60s',//超时时间
      },
    },
    io:{
      init: { }, // passed to engine.io
      namespace: {
        '/': {//监听根目录
          connectionMiddleware: [],
          packetMiddleware: [],
        },
      },
    },
   

  };



  return {
    ...config,
  };
};
